#ifndef RANGEPARTITION_H
#define RANGEPARTITION_H
#include <string>

template<typename T>
class RangePartition {
public:
    // 分区名称
    std::string name;
    // 分区上界
    T lowerBound;
    // 分区下界
    T upperBound;

    // todo other members ...
    
    //判断是否是合理的区间
    //测试用例中的empty和invalid都用这里的isvalid来判断
    //无效的数据在后面matcher的初始化时会被直接淘汰，减少匹配的负担
    bool isValid;

    RangePartition(const std::string &name, const T &lower, const T &upper)
        : name(name), lowerBound(lower), upperBound(upper), isValid(false) {
        if(lower < upper){
            isValid = true;
        }
    }

    // todo other functions ....
    bool IsValidRange(){
        return isValid;
    }
};

#endif //RANGEPARTITION_H
